package com.ftg.learn.chapter10;

import java.lang.reflect.Field;

/**
 * 学习内部类
 *
 * @author kangjx
 * @version 1.0
 * @date 2023/1/31 下午1:12
 */
public class LearnInnerClass {

    public  Hij getHij(){
        return new Hij();
    }

    public Abc getAbc(){
        return new Abc();
    }

    public LearnInnerClass(){
        System.out.println("我是LearnInnerClass构造方法");
    }

    int field01 = 9;

    public void method01(){

    }

    /**
     * 6 大原则
     * 开闭
     *
     * 封装 ：更好封装 ... 闭包
     */
    private  class Abc{
        int a = 9;
        private void test1(){

        }

        public void test2(){

        }
    }

    /**
     * 通过外部类的名称.内部类的名称
     * new 外部类名称.内部类();
     * 只有内部类的构造方法走
     */
    public static class Def{
        public Def(){
            System.out.println("我是内部类def构造方法");
        }
    }

    static int b = 13;

    /**
     * 不是静态的就是绑定给实例的
     *   通过外部类的实例。内部类的实例。say();
     */
    public  class Hij{

        public Hij(){
            System.out.println("我是内部类Hij构造方法");
        }

        public void say(){
            System.out.println("我是公共的内部类");
        }
    }

}
